package leetcode100;

import java.util.Scanner;

/**
 * @author shkstart
 * 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,
 * 他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn.
 * 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,
 * 并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数
 * .那么问题来了,在一系列的锻炼后,小易的最终能力值为多少?
 * @create 2022-12-24-22:18
 */
public class Meme22_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while(in.hasNext()){


            int n =in.nextInt();
            int a =in.nextInt();
            int arr[] = new int[n];
            for(int i=0;i<n;i++){
                arr[i] = in.nextInt();
            }

            for(int j =0;j<n;j++){
                if(a >= arr[j]){
                    a += arr[j];
                }else{
                    a+=method(arr[j],a);
                }
            }
            System.out.println(a);
        }
    }
    public static int method(int n,int m){
        int temp = n%m;

        while(temp != 0){
            n = m;
            m = temp;
            temp = n% m;
        }
        return m;
    }
}
